package tournoi.modele;

import java.io.Serializable;
import java.util.Set;

import javax.persistence.*;

/**
 * Classe permettant de definir l'objet equipe. Une equipe contiendra un id
 * genere automatiquement. Elle aura un nom et une liste de joueurs qui sera
 * considere comme sa composition. La liste de joueurs devra contenir entre 11
 * et 15 joueurs.
 * 
 * @author Florent Champigny, Kevin De Jesus Ferreira and Julien Mialon
 * 
 */
@Entity
public class Equipe implements Serializable {

	private static final long serialVersionUID = -6561754426541659588L;

	/**
	 * Correspond a l'identifiant de l'equipe
	 */
	@Id
	@GeneratedValue
	private int id;

	/**
	 * Nom de l'equipe
	 */
	private String nom;

	/**
	 * Numero de l'equipe, affecté aleatoirement par l'administrateur Permet de
	 * definir un ordre de rencontre
	 */
	private int numero;

	/**
	 * Liste des joueurs composant l'equipe
	 */
	@OneToMany(fetch = FetchType.EAGER)
	@OrderBy("nom, prenom")
	private Set<Joueur> listeJoueurs;

	// ########### Getters and Setters ############

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getNom() {
		return nom;
	}

	public void setNom(String nom) {
		this.nom = nom;
	}

	public Set<Joueur> getListeJoueurs() {
		return listeJoueurs;
	}

	public void setListeJoueurs(Set<Joueur> listeJoueurs) {
		this.listeJoueurs = listeJoueurs;
	}

	public int getNumero() {
		return numero;
	}

	public void setNumero(int numero) {
		this.numero = numero;
	}
}
